package top.codingfly.aliyun.entity;

import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;

import java.util.List;

@Data
public class PlayInfo {
    @JSONField(name = "VideoBase")
    public VideoBase videoBase;

    @Data
    public static class VideoBase {
        @JSONField(name = "Status")
        public String status;
        @JSONField(name = "VideoId")
        public String videoId;
        @JSONField(name = "TranscodeMode")
        public String transcodeMode;
        @JSONField(name = "CreationTime")
        public String creationTime;
        @JSONField(name = "Title")
        public String title;
        @JSONField(name = "MediaType")
        public String mediaType;
        @JSONField(name = "CoverURL")
        public String coverURL;
        @JSONField(name = "Duration")
        public String duration;
        @JSONField(name = "OutputType")
        public String outputType;
    }

    @JSONField(name = "requestId")
    public String requestId;

    @JSONField(name = "PlayInfoList")
    public PlayObject playObject;

    @Data
    public static class PlayObject {
        @JSONField(name = "PlayInfo")
        public List<PlayItem> playInfo;
    }

    @Data
    public static class PlayItem {
        @JSONField(name = "Status")
        public String status;

        @JSONField(name = "StreamType")
        public String streamType;

        @JSONField(name = "Rand")
        public String rand;

        @JSONField(name = "HDRType")
        public String hdrType;

        @JSONField(name = "Size")
        public Long size;

        @JSONField(name = "WatermarkId")
        public String watermarkId;

        @JSONField(name = "Definition")
        public String definition;

        @JSONField(name = "HD")
        public String hd;

        @JSONField(name = "Fps")
        public String fps;

        @JSONField(name = "Specification")
        public String specification;

        @JSONField(name = "ModificationTime")
        public String modificationTime;

        @JSONField(name = "Duration")
        public String duration;

        @JSONField(name = "Bitrate")
        public String bitrate;

        @JSONField(name = "BitDepth")
        public Long bitDepth;

        @JSONField(name = "Encrypt")
        public Long encrypt;

        @JSONField(name = "PreprocessStatus")
        public String preprocessStatus;

        @JSONField(name = "Format")
        public String format;

        @JSONField(name = "EncryptType")
        public String encryptType;

        @JSONField(name = "NarrowBandType")
        public String narrowBandType;

        @JSONField(name = "PlayURL")
        public String playURL;

        @JSONField(name = "CreationTime")
        public String creationTime;

        @JSONField(name = "Plaintext")
        public String plaintext;

        @JSONField(name = "Height")
        public Long height;

        @JSONField(name = "Width")
        public Long width;

        @JSONField(name = "JobId")
        public String jobId;

    }

}
